import { ModuleMetadata, Type } from '@nestjs/common'

export interface ResourcesClientModuleOptions {
  natsServers: string[]
}

export interface ResourcesClientModuleOptionsFactory {
  createResourcesClientOptions(): ResourcesClientModuleOptions | Promise<ResourcesClientModuleOptions>
}

export interface ResourcesClientModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
  useExisting?: Type<ResourcesClientModuleOptionsFactory>
  useClass?: Type<ResourcesClientModuleOptionsFactory>
  inject?: any[]
  useFactory?: (...args: any[]) => Promise<ResourcesClientModuleOptions> | ResourcesClientModuleOptions
}
